package com.atguigu.gmall.product;

import java.util.concurrent.CompletableFuture;

/**
 * @Author: lx
 * @Time: 14:41
 * @Description:
 */
public class CompletableFutureDemo {



    public static void main(String[] args) {
        //1: 女2 男2  2：女1  3：男1
        CompletableFuture<Void> completableFuture1 = CompletableFuture.runAsync(() -> {
            System.out.println("女2出场");
        });
 /*       CompletableFuture.runAsync(() -> {
            System.out.println("男2出场");

        }).thenApplyAsync((t -> {
            //接收上一次任务的返回值  同时 自己也返回结果
            return "";
        }));*/
        CompletableFuture<Void> completableFuture2 = CompletableFuture.runAsync(() -> {
            System.out.println("男2出场");

        }).thenRunAsync(() -> {
            //不接收上一次任务的返回值  同时 自己也不返回结果
            System.out.println("女1出场");
        }).thenRunAsync(() -> {
            //不接收上一次任务的返回值  同时 自己也不返回结果
            System.out.println("男1出场");
        });
/*        CompletableFuture.runAsync(() -> {
            System.out.println("男2出场");

        }).thenAccept((t-> {
            //接收上一次任务的返回值  同时 自己也不返回结果
        }));*/

        CompletableFuture.allOf(completableFuture1,completableFuture2).join();
    }
}
